 /**
 * 逻辑、功能相关描述: <br>
 *
 * @author 付湘辉  <br>
 * 编写日期：2008-8-12  <br>
 */
package com.ce.pms.charge.service;

import java.math.BigDecimal;

import com.ce.pms.base.service.IPmsBaseService;
import com.ce.pms.charge.vo.CashieringSearchVO;
import com.ce.pms.charge.vo.CreditTransVO;
import com.ce.pms.charge.vo.DebitTransVO;
import com.ce.pms.charge.vo.HistoryAccountVO;
import com.ce.pms.charge.vo.HouseChargeVO;
import com.ce.pms.charge.vo.AdjustTransactionVO;
import com.ce.pms.charge.vo.PrePaySchChargeVO;
import com.sitechasia.webx.core.support.Page;

/**
 * 	名称: com.ce.pms.charge.service.ICashieringService <br>
 *  前台收费业务接口
 *
 * @author  付湘辉  <br>
 * Created on： 2008-8-12 <br>
 * @author <br>
 * update on： <br>
 * why: <br>
 */
public interface ICashieringService extends IPmsBaseService {
	/**
	 * 功能描述: 查询房间历史帐户分页信息 <br>
	 * @param searchVo
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-8-14  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public Page queryHouseChargeHistoryListByPage(CashieringSearchVO searchVo);

	/**
	 * 功能描述: 根据总账户id查询收费子账户的滞纳金金额，
	 * 只查询未缴状态的，并且计算调整和减免。 <br>
	 * @param accountId
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-11-10  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public BigDecimal queryLatefeeByAccountId(Long accountId);

	/**
	 * 功能描述: 查询指定房屋产权帐户的详细信息  <br>
	 * @param searchVo
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-8-27  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public HistoryAccountVO queryHouseChargeDetailInfo(CashieringSearchVO searchVo);

	/**
	 * 功能描述: 根据房号查询房屋有效的费用信息VO <br>
	 * @param searchVO
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-8-15  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public Page getEffectiveHouseChargeInfo(CashieringSearchVO searchVO);

	/**
	 * 功能描述: 查询指定号码的房间最近一次历史帐户信息 <br>
	 * @param searchVO
	 * @return Page
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-8-22  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public Page getLastHouseChargeInfo(CashieringSearchVO searchVO);

	/**
	 * 功能描述:　入帐
	 * 　<ul><li>手工记入一笔应收帐款，记入交易借方，作为本金交易 </li></ul>
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-8-29  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:  principalTran   <br>
	 */
	public DebitTransVO inputAccountForHand(DebitTransVO debitTransVO);

	/**
	 * 功能描述:　调整
	 * 　<ul>
	 * <li>
	 * 手工记入一笔应收帐款，子帐户是物业帐户，记入交易表借方，
	 * 作为调整交易；在参数adjustTransVO中，必须指定其所属的主交易principalTrans </li>
	 * </ul>
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-8-29  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:  principalTran   <br>
	 */
	public AdjustTransactionVO inputAdjustAccountForHand(AdjustTransactionVO adjustTransVO);

	/**
	 * 功能描述:　减免
	 * 　<ul>
	 * <li>
	 * 手工记入一笔应收帐款，子帐户是物业帐户，
	 * 记入交易表借方，作为减免交易；在参数adjustTransVO中，
	 * 必须指定其所属的主交易principalTrans
	 * </li>
	 * </ul>
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-8-29  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:  principalTran   <br>
	 */
	public AdjustTransactionVO inputReliefAccountForHand(AdjustTransactionVO reliefTransVO);

	/**
	 * 功能描述: 收取一笔预交款 <br>
	 * @param prePaySchChargeVO 预交款账户收款VO
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-9-8  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public PrePaySchChargeVO receivedPrePaySchCharge(PrePaySchChargeVO prePaySchChargeVO);

	/**
	 * 功能描述: 手工缴纳费用，记入交易贷方，作为实收交易 <br>
	 * @param creditTransVO
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-8-29  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public CreditTransVO payCostsForHand(CreditTransVO creditTransVO);
}
